package com.atguigu.gmall.payment.service;

import com.atguigu.gmall.common.result.Result;

import java.util.Map;

public interface AlipayService {

    /**
     * 基于订单生成支付页面
     *
     * @param userId
     * @param orderId
     * @return 支付宝响应支付页面表单
     */
    String createAlipayForm(String userId, Long orderId);

    /**
     * 当用户支付成功后，支付宝会自动调用该接口进行支付结果通知
     *
     * @param paramsMap
     * @return
     */
    String notifyPaySuccess(Map<String, String> paramsMap);

    /**
     * 支付宝退款
     *
     * @param orderId
     * @return
     */
    Result refund(Long orderId);

    /**
     * @param orderId
     */
    void processCloseTrade(Long orderId);


    /**
     * 查询支付宝端交易状态
     *
     * @param outTradeNo
     * @return
     */
    String getAlipayTradeStatus(String outTradeNo);


    /**
     * 关闭支付宝交易
     * @param outTradeNo
     */
    void closeAlipayTrade(String outTradeNo);
}
